The exponential growth of the Internet has made it a ubiquitous delivery medium for a variety of applications. Such applications, in turn, have brought with them an increasing demand for bandwidth. As a result, service providers race to build larger and faster data centers with versatile capabilities. Meanwhile, advances in virtualization technologies have made it possible to implement a large number of virtual machines (VMs) in a data center. These virtual machines can essentially operate as physical hosts and perform a variety of functions such as Web or database servers. Because virtual machines are implemented in software, virtual machines for different customer can coexist in the same physical host. This multi-tenancy capability allows service providers to partition and isolate physical resources (e.g., computing power and network capacity) according to customer needs, and to allocate such resources dynamically.
While virtualization brings unprecedented flexibility to service providers, the conventional multi-tenancy tends to be rigid and cannot readily accommodate the dynamic nature of traffic generated by virtual machines. For example, efficiently addressing diverse service requirements of traffic from a plurality of multi-tenant customers (or clients) with different service requirements can be challenging. To obtain service for its traffic, a virtual machine typically interacts with one or more physical or virtual equipments (can be referred to as service portals). A service portal can provide specific networking services, such as load balancing and firewall service etc, and application services, such as web proxy, mail proxy, authentication proxy, web caching, content proxy etc. In conventional datacenter environments, this interaction can be enabled by configuring the services at several management stations in the network.
One or more service portals can provide a service within or outside of the datacenter environment. Consequently, the network infrastructure comprising switches and routers in the datacenter environment requires service switching for multiple services to reach the desired portals. Service switching refers to the switching of a packet based on its service requirements to a service portal. With today's dynamic nature of the datacenter service and policy deployment, such service switching is an increasingly difficult task.
Because of multi-tenancy, the same network infrastructure is used for forwarding traffic flow belonging to different clients. Traffic for a respective client can be originated from a number of applications running on different virtual machines. Furthermore, different clients may require the network infrastructure to forward traffic belonging to the same application differently. For example, in a multi-tenant environment, the network infrastructure may need to forward web traffic from one client to a web filtering service portal while bypassing web filtering for a second client. In a conventional datacenter, the ability to switch traffic based on the corresponding requested services is typically based on static routing policies toward appliances dedicated for services in the network infrastructure. Consequently, managing and extensive provisioning of individual devices in a network infrastructure to accommodate such diverse service requirements can be tedious and error-prone.